_DMA_OPERATIONS

//0x138 bytes (sizeof) struct _DMA_OPERATIONS { ULONG Size; //0x0 VOID (*PutDmaAdapter)(struct _DMA_ADAPTER* arg1); //0x8 VOID* (*AllocateCommonBuffer)(struct _DMA_ADAPTER* arg1, ULONG arg2, union _LARGE_INTEGER* arg3, UCHAR arg4); //0x10 VOID (*FreeCommonBuffer)(struct _DMA_ADAPTER* arg1, ULONG arg2, union _LARGE_INTEGER arg3, VOID* arg4, UCHAR arg5); //0x18 LONG (*AllocateAdapterChannel)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, ULONG arg3, enum _IO_ALLOCATION_ACTION (*arg4)(struct _DEVICE_OBJECT* arg1, struct _IRP* arg2, VOID* arg3, VOID* arg4), VOID* arg5); //0x20 UCHAR (*FlushAdapterBuffers)(struct _DMA_ADAPTER* arg1, struct _MDL* arg2, VOID* arg3, VOID* arg4, ULONG arg5, UCHAR arg6); //0x28 VOID (*FreeAdapterChannel)(struct _DMA_ADAPTER* arg1); //0x30 VOID (*FreeMapRegisters)(struct _DMA_ADAPTER* arg1, VOID* arg2, ULONG arg3); //0x38 union _LARGE_INTEGER (*MapTransfer)(struct _DMA_ADAPTER* arg1, struct _MDL* arg2, VOID* arg3, VOID* arg4, ULONG* arg5, UCHAR arg6); //0x40 ULONG (*GetDmaAlignment)(struct _DMA_ADAPTER* arg1); //0x48 ULONG (*ReadDmaCounter)(struct _DMA_ADAPTER* arg1); //0x50 LONG (*GetScatterGatherList)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, struct _MDL* arg3, VOID* arg4, ULONG arg5, VOID (*arg6)(struct _DEVICE_OBJECT* arg1, struct _IRP* arg2, struct _SCATTER_GATHER_LIST* arg3, VOID* arg4), VOID* arg7, UCHAR arg8); //0x58 VOID (*PutScatterGatherList)(struct _DMA_ADAPTER* arg1, struct _SCATTER_GATHER_LIST* arg2, UCHAR arg3); //0x60 LONG (*CalculateScatterGatherList)(struct _DMA_ADAPTER* arg1, struct _MDL* arg2, VOID* arg3, ULONG arg4, ULONG* arg5, ULONG* arg6); //0x68 LONG (*BuildScatterGatherList)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, struct _MDL* arg3, VOID* arg4, ULONG arg5, VOID (*arg6)(struct _DEVICE_OBJECT* arg1, struct _IRP* arg2, struct _SCATTER_GATHER_LIST* arg3, VOID* arg4), VOID* arg7, UCHAR arg8, VOID* arg9, ULONG arg10); //0x70 LONG (*BuildMdlFromScatterGatherList)(struct _DMA_ADAPTER* arg1, struct _SCATTER_GATHER_LIST* arg2, struct _MDL* arg3, struct _MDL** arg4); //0x78 LONG (*GetDmaAdapterInfo)(struct _DMA_ADAPTER* arg1, struct _DMA_ADAPTER_INFO* arg2); //0x80 LONG (*GetDmaTransferInfo)(struct _DMA_ADAPTER* arg1, struct _MDL* arg2, ULONGLONG arg3, ULONG arg4, UCHAR arg5, struct _DMA_TRANSFER_INFO* arg6); //0x88 LONG (*InitializeDmaTransferContext)(struct _DMA_ADAPTER* arg1, VOID* arg2); //0x90 VOID* (*AllocateCommonBufferEx)(struct _DMA_ADAPTER* arg1, union _LARGE_INTEGER* arg2, ULONG arg3, union _LARGE_INTEGER* arg4, UCHAR arg5, ULONG arg6); //0x98 LONG (*AllocateAdapterChannelEx)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, VOID* arg3, ULONG arg4, ULONG arg5, enum _IO_ALLOCATION_ACTION (*arg6)(struct _DEVICE_OBJECT* arg1, struct _IRP* arg2, VOID* arg3, VOID* arg4), VOID* arg7, VOID** arg8); //0xa0 LONG (*ConfigureAdapterChannel)(struct _DMA_ADAPTER* arg1, ULONG arg2, VOID* arg3); //0xa8 UCHAR (*CancelAdapterChannel)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, VOID* arg3); //0xb0 LONG (*MapTransferEx)(struct _DMA_ADAPTER* arg1, struct _MDL* arg2, VOID* arg3, ULONGLONG arg4, ULONG arg5, ULONG* arg6, UCHAR arg7, struct _SCATTER_GATHER_LIST* arg8, ULONG arg9, VOID (*arg10)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, VOID* arg3, enum DMA_COMPLETION_STATUS arg4), VOID* arg11); //0xb8 LONG (*GetScatterGatherListEx)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, VOID* arg3, struct _MDL* arg4, ULONGLONG arg5, ULONG arg6, ULONG arg7, VOID (*arg8)(struct _DEVICE_OBJECT* arg1, struct _IRP* arg2, struct _SCATTER_GATHER_LIST* arg3, VOID* arg4), VOID* arg9, UCHAR arg10, VOID (*arg11)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, VOID* arg3, enum DMA_COMPLETION_STATUS arg4), VOID* arg12, struct _SCATTER_GATHER_LIST** arg13); //0xc0 LONG (*BuildScatterGatherListEx)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, VOID* arg3, struct _MDL* arg4, ULONGLONG arg5, ULONG arg6, ULONG arg7, VOID (*arg8)(struct _DEVICE_OBJECT* arg1, struct _IRP* arg2, struct _SCATTER_GATHER_LIST* arg3, VOID* arg4), VOID* arg9, UCHAR arg10, VOID* arg11, ULONG arg12, VOID (*arg13)(struct _DMA_ADAPTER* arg1, struct _DEVICE_OBJECT* arg2, VOID* arg3, enum DMA_COMPLETION_STATUS arg4), VOID* arg14, VOID* arg15); //0xc8 LONG (*FlushAdapterBuffersEx)(struct _DMA_ADAPTER* arg1, struct _MDL* arg2, VOID* arg3, ULONGLONG arg4, ULONG arg5, UCHAR arg6); //0xd0 VOID (*FreeAdapterObject)(struct _DMA_ADAPTER* arg1, enum _IO_ALLOCATION_ACTION arg2); //0xd8 LONG (*CancelMappedTransfer)(struct _DMA_ADAPTER* arg1, VOID* arg2); //0xe0 LONG (*AllocateDomainCommonBuffer)(struct _DMA_ADAPTER* arg1, VOID* arg2, union _LARGE_INTEGER* arg3, ULONG arg4, ULONG arg5, enum _MEMORY_CACHING_TYPE* arg6, ULONG arg7, union _LARGE_INTEGER* arg8, VOID** arg9); //0xe8 LONG (*FlushDmaBuffer)(struct _DMA_ADAPTER* arg1, struct _MDL* arg2, UCHAR arg3); //0xf0 LONG (*JoinDmaDomain)(struct _DMA_ADAPTER* arg1, VOID* arg2); //0xf8 LONG (*LeaveDmaDomain)(struct _DMA_ADAPTER* arg1); //0x100 VOID* (*GetDmaDomain)(struct _DMA_ADAPTER* arg1); //0x108 VOID* (*AllocateCommonBufferWithBounds)(struct _DMA_ADAPTER* arg1, union _LARGE_INTEGER* arg2, union _LARGE_INTEGER* arg3, ULONG arg4, ULONG arg5, enum _MEMORY_CACHING_TYPE* arg6, ULONG arg7, union _LARGE_INTEGER* arg8); //0x110 LONG (*AllocateCommonBufferVector)(struct _DMA_ADAPTER* arg1, union _LARGE_INTEGER arg2, union _LARGE_INTEGER arg3, enum _MEMORY_CACHING_TYPE arg4, ULONG arg5, ULONG arg6, ULONG arg7, ULONGLONG arg8, struct _DMA_COMMON_BUFFER_VECTOR** arg9); //0x118 VOID (*GetCommonBufferFromVectorByIndex)(struct _DMA_ADAPTER* arg1, struct _DMA_COMMON_BUFFER_VECTOR* arg2, ULONG arg3, VOID** arg4, union _LARGE_INTEGER* arg5); //0x120 VOID (*FreeCommonBufferFromVector)(struct _DMA_ADAPTER* arg1, struct _DMA_COMMON_BUFFER_VECTOR* arg2, ULONG arg3); //0x128 VOID (*FreeCommonBufferVector)(struct _DMA_ADAPTER* arg1, struct _DMA_COMMON_BUFFER_VECTOR* arg2); //0x130 };